//--------------------------------------------------------------------
#ifndef _dkvariables_h
#define _dkvariables_h
//--------------------------------------------------------------------
#include "dkexpression.h"
//--------------------------------------------------------------------
// struct _dkvariable is an item for linked list of variables
struct _dkvariable
{
	char *name;
	struct _dkexpression e;

	struct _dkvariable *next;
};

//--------------------------------------------------------------------


extern void dksetinarray( char *name, uint16_t type, void *data, int numdims, uint16_t *dims );
extern dkexpression *dkgetexpfromarray( char *name, uint16_t type, int numdims, uint16_t *dims );
extern uint16_t dkgetvarvalue( char *name, uint16_t type );
extern struct _dkvariable *dkgetvariable( char *name, uint16_t type );
extern void dksetvariable( char *name, uint16_t type, void *data );
extern struct _dkvariable *dkaddvariable( char *name, uint16_t type, void *data );
extern void dkremovevariable( char *name, uint16_t type );
extern void dkremovearray( char *name, uint16_t type );
void dkfillarray( char *name, uint16_t type, void *data, int numdims, uint16_t *dims, int len );


extern struct _dkvariable *dkvariables;

//--------------------------------------------------------------------
#endif	// !_dkvariables_h
//--------------------------------------------------------------------

